package pers.xiaojun.boot.tenant.config.properties;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
 * 租戶配置
 *
 * @author xiaojun
 * @since 2025-11-22
 */
@Data
@ConfigurationProperties(prefix = "xiaojun.tenant")
public class TenantProperties {

    /**
     * 是否开启租户模式
     */
    private Boolean enable = false;

    /**
     * 多租户数据库字段名
     */
    @NotBlank(message = "租户数据库字段名不能为空")
    private String column = "tenant_id";

    /**
     * 多租户请求头名
     */
    @NotBlank(message = "多租户请求头名不能为空")
    private String tenantHeader = "tenant-id";


    /**
     * 忽略的的请求URL
     */
    private Set<String> ignoreUrls = new HashSet<>();


    /**
     * 忽略的数据库表名
     */
    private Set<String> ignoreTables = new HashSet<>();

}
